package cybertwin

// 目前设计成返回最佳的服务器位置，也可以设计成返回最佳k个服务器位置，重传的时候可以尝试连接次佳服务器
func (cbt *Cybertwin) getIPandPort(ProviderID, ServiceID uint32) (ip []string, port []string, proto []string, err error) {
	// to do : JUST MOCK
	ip = make([]string, 1)
	port = make([]string, 1)
	proto = make([]string, 1)

	// 默认值为echo服务，目前直接使用k8s的服务寻址能力
	proto[0] = "tcp"
	if ProviderID == 1 && ServiceID == 1 {
		ip[0] = "www.baidu.com" // 百度的首页的ip地址
		port[0] = "80"
	}
	if ServiceID == 2 {
		ip[0] = "127.0.0.1"
		port[0] = "9000"
		proto[0] = "tcp"
	}
	if ServiceID == 3 {
		ip[0] = "tanslate_svc"
		port[0] = "9002"
	}
	return
}

func getPriority(dscp byte) int {
	return int(dscp) % PRIORITY_TYPE
}

// func permissionVerify(ct *Cybertwin, request *Request_Record) (result TrustEvaStatus, err error) {
// 	// 1. 向信任引擎发送请求
// 	score, err := ct.GetTrustScore(request.ueid)
// 	if err != nil {
// 		logrus.Errorf("[permissionVerify]-获取信任分数失败， err=%s", err)
// 		return Rejected, err
// 	}
// 	// 2. 查询服务评估表以及对应的服务能否访问
// 	logrus.Infoln("[PermissionVerify]-向数据库查询服务评估表")
// 	q := session.NewDBQuery()
// 	svcAccessEntity, err := q.GetSvcAccessById(context.Background(), int64(request.serviceID))
// 	if err != nil {
// 		logrus.Errorf("[permissionVerify]-获取服务评估表失败")
// 		return Rejected, err
// 	}
// 	logrus.Infoln("[PermissionVerify]-向数据库查询服务评估表结束")
// 	// 3. 若score大于该服务的访问阈值，则允许访问
// 	if score >= svcAccessEntity.Threshold {
// 		logrus.Infof("[permissionVerify]-信任分数%v大于阈值%v，可以访问", score, svcAccessEntity.Threshold)
// 		return Approved, nil
// 	} else {
// 		logrus.Infof("[permissionVerify]-信任分数%v小于阈值%v，拒绝访问", score, svcAccessEntity.Threshold)
// 		return Rejected, nil
// 	}

// }
